#include "widget.h"
#include "ui_widget.h"
#include<QMessageBox>
#include<QFileDialog>
#include<QFile>
#include<QDebug>
Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setWindowTitle("FPGA之旅-AuroraFOC");
    this->setWindowIcon(QIcon("://logo.ico"));

    serialplotThread = new QThread(this);
    serial.moveToThread(serialplotThread);  //将串口发送接收page移动到线程中去
    serialplotThread->start();                  //启动线程
    qRegisterMetaType<SerialPlot::COMINFO>("SerialPlot::COMINFO"); //注册结构体
    qRegisterMetaType<uint8_t>("uint8_t"); //注册结构体

    waveDataThread = new QThread(this);
    waveData.moveToThread(waveDataThread);  //将串口发送接收page移动到线程中去
    waveDataThread->start();                  //启动线程
    qRegisterMetaType<QVector<double>>("QVector<double>"); //注册结构体


    //串口部分  连接部分
    connect(ui->serialUI,&serialWidget::openSerial_Signal,&serial,&SerialPlot::connectCOM);
    connect(ui->serialUI,&serialWidget::closeSerial_Signal,&serial,&SerialPlot::closeCOM);
    connect(&serial,&SerialPlot::ScanTimeSignals,ui->serialUI,&serialWidget::scanCOM_Slots);
    connect(&serial,&SerialPlot::serialState,ui->serialUI,&serialWidget::serialIsConnect_Slots);



    connect(&serial,&SerialPlot::readSignals,this,[=](QByteArray data, QString hex_string){
        ui->label_4->setText(data.remove(data.size()-2,2));
    });  //状态



    connect(&serial,&SerialPlot::readSignals,ui->textUI,&textWidget::textdisplay_RecvData);  //text   接收显示数据
    connect(ui->textUI,&textWidget::textdisplay_SendData,&serial,&SerialPlot::send);         //textUI 发送数据

    connect(&serial,&SerialPlot::readWaveData,&waveData,&wave_data::update_wave_data);       //接收波形文件
    connect(&waveData,&wave_data::sendWaveData,ui->motorUI,&motorWidget::updateWave);       //接收波形文件


    connect(&serial,&SerialPlot::readFocParam,ui->motorUI,&motorWidget::updateFocParam);       //接收电机参数数据

    //发送文件
    connect(ui->fileUI,&filewidget::sendData,&serial,&SerialPlot::send);         //textUI 发送数据



    //电机部分
    connect(ui->motorUI,&motorWidget::sendData,&serial,&SerialPlot::send);

    connect(ui->comboBox,&QComboBox::currentTextChanged,this,[=](const QString &name){
        if(QString::compare(name,"文本模式") == 0){
            ui->stackedWidget->setCurrentWidget(ui->textUI);
            ui->textUI->setinUI(1);

        }
        else if(QString::compare(name,"文件模式") == 0){
            ui->stackedWidget->setCurrentWidget(ui->fileUI);
            ui->textUI->setinUI(0);
        }
        else if(QString::compare(name,"电机模式") == 0){
            ui->stackedWidget->setCurrentWidget(ui->motorUI);
            ui->textUI->setinUI(0);
        }
    });
}

Widget::~Widget()
{
    serialplotThread->quit();
    serialplotThread->wait();
    delete ui;
}

void Widget::serialplotCOMcallback(QStringList comlist){

}


void Widget::serialplotBtnOpenClose(){

}

void Widget::serialplotSendData(){
   // QString text = ui->textEdit->toPlainText();
  //  qDebug() << text;

  //  emit sendCom(text.toUtf8().data(),text.toUtf8().size());
    //serialplot.send(text.toUtf8().data(),text.toUtf8().size());
}

void Widget::serialRecvData(QByteArray data){
//    if(serialplot.hex_display == true){
//        char *hex = data.data();
//        for(int i =0;i<data.size();i++){
//            ui->textBrowser->insertPlainText(QString("%1 ").arg((unsigned)hex[i],0,16));
//        }
//    }else{
//        ui->textBrowser->insertPlainText(QString::fromUtf8(data));
//    }
//    ui->textBrowser->moveCursor(ui->textBrowser->textCursor().End);
}





























